package com.mine.yyb.modules.sys.service.impl;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.mine.yyb.common.utils.exception.MineErrorCode;
import com.mine.yyb.common.utils.exception.MineException;
import com.mine.yyb.modules.sys.bo.RyReportBO;
import com.mine.yyb.modules.sys.dao.IRyReportDao;
import com.mine.yyb.modules.sys.service.IRyReportService;
import com.mine.yyb.modules.sys.vo.RyReportVO;

/**
 * <pre>
 * <一句话功能简述>
 * <功能详细描述>
 * </pre>
 * 
 * @author 姓名 工号
 * @version [版本号, 2017年6月14日]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
@Service(value = "iRyReportService")
public class RyReportServiceImpl implements IRyReportService
{
    
    private static Logger logger = LoggerFactory.getLogger(RyReportServiceImpl.class);
    
    @Autowired
    private IRyReportDao iRyReportDao;
    
    /**
     * <pre>
     * <一句话功能简述>
     * <功能详细描述>
     * </pre>
     *
     * @author 姓名 工号
     * @version [版本号, 2017年6月14日]
     * @return
     * @see [类、类#方法、类#成员]
     */
    @Override
    public RyReportVO queryJpamzOrder(RyReportBO reportBO)
        throws MineException
    {
        try
        {
            logger.info(reportBO.toString());
            
            RyReportVO reportVO = new RyReportVO();
            reportVO.setOrderID(reportBO.getOrderID().replaceAll("\"", ""));
            
            return iRyReportDao.queryReport(reportVO);
        }
        catch (MineException e)
        {
            throw e;
        }
        catch (Exception e)
        {
            throw new MineException(MineErrorCode.ERROR_INTERNAL, e);
        }
    }
    
    /** 
     * <pre>
     * <一句话功能简述>
     * <功能详细描述>
     * </pre>
     *
     * @author  姓名 工号
     * @version  [版本号, 2017年7月28日]
     * @throws MineException
     * @see [类、类#方法、类#成员]
     */
    @Override
    public void truncate()
        throws MineException
    {
        iRyReportDao.truncate();
    }



    /**
     * <pre>
     * <一句话功能简述>
     * <功能详细描述>
     * </pre>
     *
     * @author 姓名 工号
     * @version [版本号, 2017年6月14日]
     * @param reportVO
     * @return
     * @throws MineException
     * @see [类、类#方法、类#成员]
     */
    @Override
    public String save(RyReportBO reportBO)
        throws MineException
    {
        try
        {
            logger.info(reportBO.toString());
            
            RyReportVO reportVO = new RyReportVO();
            reportVO.setActivity(reportBO.getActivity().replaceAll("\"", ""));
            reportVO.setProductName(reportBO.getProductName().replaceAll("\"", ""));
            reportVO.setOrderDate(reportBO.getOrderDate().replaceAll("\"", ""));
            reportVO.setOrderID(reportBO.getOrderID().replaceAll("\"", ""));
            reportVO.setPrice(Double.parseDouble(reportBO.getPrice().replaceAll("\"", "")));
            reportVO.setRebate(Double.parseDouble(reportBO.getRebate().replaceAll("\"", "")));
            reportVO.setCount(Integer.parseInt(reportBO.getCount().replaceAll("\"", "")));
            reportVO.setLabel(reportBO.getLabel().replaceAll("\"", ""));
            reportVO.setState(reportBO.getState().replaceAll("\"", ""));
            reportVO.setLabelTo(reportBO.getLabelTo().replaceAll("\"", ""));
            
            int result = iRyReportDao.save(reportVO);
            
            return result > 0 ? MineErrorCode.SUCCESS.name() : MineErrorCode.ERROR_INTERNAL.name();
        }
        catch (MineException e)
        {
            throw e;
        }
        catch (Exception e)
        {
            throw new MineException(MineErrorCode.ERROR_INTERNAL, e);
        }
    }
    
    @Override
    public String update(RyReportBO reportBO)
        throws MineException
    {
        try
        {
            logger.info(reportBO.toString());
            
            RyReportVO reportVO = new RyReportVO();
            reportVO.setActivity(reportBO.getActivity().replaceAll("\"", ""));
            reportVO.setProductName(reportBO.getProductName().replaceAll("\"", ""));
            reportVO.setOrderDate(reportBO.getOrderDate().replaceAll("\"", ""));
            reportVO.setOrderID(reportBO.getOrderID().replaceAll("\"", ""));
            reportVO.setPrice(Double.parseDouble(reportBO.getPrice().replaceAll("\"", "")));
            reportVO.setRebate(Double.parseDouble(reportBO.getRebate().replaceAll("\"", "")));
            reportVO.setCount(Integer.parseInt(reportBO.getCount().replaceAll("\"", "")));
            reportVO.setLabel(reportBO.getLabel().replaceAll("\"", ""));
            reportVO.setState(reportBO.getState().replaceAll("\"", ""));
            reportVO.setLabelTo(reportBO.getLabelTo().replaceAll("\"", ""));
            
            int result = iRyReportDao.update(reportVO);
            return result > 0 ? MineErrorCode.SUCCESS.name() : MineErrorCode.ERROR_INTERNAL.name();
        }
        catch (MineException e)
        {
            throw e;
        }
        catch (Exception e)
        {
            throw new MineException(MineErrorCode.ERROR_INTERNAL, e);
        }
    }
    
}
